#include <stdio.h>
#include <string.h>
#include "app_log.h"
#include "app_io.h"
#include "board_SK.h"
#include "app_gpiote.h"
#include "api_temp.h"
#define APP_TEMPB_PIN                     APP_IO_PIN_11     /* GPIO27 - 16 */
#define APP_TEMPB_PIN_TYPE                APP_IO_TYPE_GPIOB   
void get_temp(int *temp_value)
{
		app_io_init_t io_init0;
    io_init0.pin  = APP_TEMPB_PIN;
    io_init0.mode = APP_IO_MODE_OUTPUT;
    io_init0.pull = APP_IO_PULLDOWN;
    io_init0.mux  = APP_IO_MUX;
    app_io_init(APP_TEMPB_PIN_TYPE, &io_init0);
    app_io_write_pin(APP_TEMPB_PIN_TYPE, APP_TEMPB_PIN, APP_IO_PIN_RESET);	
		app_io_init_t io_init;

	
	  io_init.pull = APP_IO_NOPULL;
    io_init.mode = APP_IO_MODE_OUTPUT;
    io_init.pin  = APP_IO_PIN_4;
    io_init.mux  = APP_IO_MUX;
    app_io_init(APP_IO_TYPE_AON, &io_init);
	
		delay_ms(2);
		app_io_write_pin(APP_IO_TYPE_AON,APP_IO_PIN_4,APP_IO_PIN_SET);
		delay_ms(8);
		io_init.pull = APP_IO_NOPULL;
    io_init.mode = APP_IO_MODE_INPUT;
    io_init.pin  = APP_IO_PIN_4;
    io_init.mux  = APP_IO_MUX;
    app_io_init(APP_IO_TYPE_AON, &io_init);
	 // delay_ms(45);
   
		int Num = pulse_capture();
		printf("num=%d\r\n",Num);
  	double Temp = 0.0625*Num - 50.0625;
		*temp_value=(int)(Temp*10);
//	printf("Temp=%.4f",Temp);

}

extern int temper_timer_cnt;
int pulse_capture() {
	
		bool flag = false;
		int num = 0;
	  temper_timer_cnt=0;
	  while(temper_timer_cnt>40)
		{
			app_io_pin_state_t pin_state = app_io_read_pin(APP_GPIO_PIN2_TYPE, APP_IO_PIN_4);//pin_state ?????????????
			if (pin_state == APP_IO_PIN_SET && !flag) 
			{
				flag = true;
			} 
			else if (pin_state == APP_IO_PIN_RESET && flag) 
			{
				flag = false;
				num++;
			}
	}
		return(num);
}
